home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / libmng_conf.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-02-26  |  12.9 KB  |  296 lines

  1. /* ************************************************************************** */
  2. /* *                                                                        * */
  3. /* * project   : libmng                                                     * */
  4. /* * file      : libmng_conf.h             copyright (c) G.Juyn 2000-2004   * */
  5. /* * version   : 1.0.9                                                      * */
  6. /* *                                                                        * */
  7. /* * purpose   : main configuration file                                    * */
  8. /* *                                                                        * */
  9. /* * author    : G.Juyn                                                     * */
  10. /* *                                                                        * */
  11. /* * comment   : The configuration file. Change this to include/exclude     * */
  12. /* *             the options you want or do not want in libmng.             * */
  13. /* *                                                                        * */
  14. /* * changes   : 0.5.2 - 06/02/2000 - G.Juyn                                * */
  15. /* *             - separated configuration-options into this file           * */
  16. /* *             - changed to most likely configuration (?)                 * */
  17. /* *             0.5.2 - 06/03/2000 - G.Juyn                                * */
  18. /* *             - changed options to create a standard so-library          * */
  19. /* *               with everything enabled                                  * */
  20. /* *             0.5.2 - 06/04/2000 - G.Juyn                                * */
  21. /* *             - changed options to create a standard win32-dll           * */
  22. /* *               with everything enabled                                  * */
  23. /* *                                                                        * */
  24. /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
  25. /* *             - changed file-prefixes                                    * */
  26. /* *                                                                        * */
  27. /* *             0.9.3 - 08/12/2000 - G.Juyn                                * */
  28. /* *             - added workaround for faulty PhotoShop iCCP chunk         * */
  29. /* *             0.9.3 - 09/16/2000 - G.Juyn                                * */
  30. /* *             - removed trace-options from default SO/DLL builds         * */
  31. /* *                                                                        * */
  32. /* *             1.0.4 - 06/22/2002 - G.Juyn                                * */
  33. /* *             - B526138 - returned IJGSRC6B calling convention to        * */
  34. /* *               default for MSVC                                         * */
  35. /* *                                                                        * */
  36. /* *             1.0.5 - 09/14/2002 - G.Juyn                                * */
  37. /* *             - added event handling for dynamic MNG                     * */
  38. /* *             - added 'supports' call to check function availability     * */
  39. /* *                                                                        * */
  40. /* *             1.0.6 - 06/22/2002 - G.R-P                                 * */
  41. /* *             - added MNG_NO_INCLUDE_JNG conditional                     * */
  42. /* *             - added MNG_SKIPCHUNK_evNT conditional                     * */
  43. /* *             1.0.6 - 07/14/2002 - G.R-P                                 * */
  44. /* *             - added MNG_NO_SUPPORT_FUNCQUERY conditional               * */
  45. /* *                                                                        * */
  46. /* *             1.0.7 - 03/07/2004 - G.R-P                                 * */
  47. /* *             - added MNG_VERSION_QUERY_SUPPORT_ conditional             * */
  48. /* *                                                                        * */
  49. /* *             1.0.9 - 05/12/2004 - G.Juyn                                * */
  50. /* *             - clearified MNG_BIGENDIAN_SUPPORTED conditional           * */
  51. /* *             - added MNG_LITTLEENDIAN_SUPPORTED conditional             * */
  52. /* *                                                                        * */
  53. /* ************************************************************************** */
  54.  
  55.  
  56. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  57. #pragma option -A                      /* force ANSI-C */
  58. #endif
  59.  
  60. #ifndef _libmng_conf_h_
  61. #define _libmng_conf_h_
  62.  
  63. #ifdef MNG_MOZILLA_CFG
  64. #include "special\mozcfg\mozlibmngconf.h"
  65. #endif
  66.  
  67. /* ************************************************************************** */
  68. /* *                                                                        * */
  69. /* *  User-selectable compile-time options                                  * */
  70. /* *                                                                        * */
  71. /* ************************************************************************** */
  72.  
  73. /* enable exactly one(1) of the MNG-(sub)set selectors */
  74. /* use this to select which (sub)set of the MNG specification you wish
  75.    to support */
  76. /* generally you'll want full support as the library provides it automatically
  77.    for you! if you're really strung on memory-requirements you can opt
  78.    to enable less support (but it's just NOT a good idea!) */
  79. /* NOTE that this isn't actually implemented yet */
  80.  
  81. #if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC)
  82. #define MNG_SUPPORT_FULL
  83. /* #define MNG_SUPPORT_LC */
  84. /* #define MNG_SUPPORT_VLC */
  85. #endif
  86.  
  87. /* ************************************************************************** */
  88.  
  89. /* enable JPEG support if required */
  90. /* use this to enable the JNG support routines */
  91. /* this requires an external jpeg package;
  92.    currently only IJG's jpgsrc6b is supported! */
  93. /* NOTE that the IJG code can be either 8- or 12-bit (eg. not both);
  94.    so choose the one you've defined in jconfig.h; if you don't know what
  95.    the heck I'm talking about, just leave it at 8-bit support (thank you!) */
  96.  
  97. #ifndef MNG_NO_INCLUDE_JNG
  98. #ifdef MNG_SUPPORT_FULL                /* full support includes JNG */
  99. #define MNG_SUPPORT_IJG6B
  100. #endif
  101.  
  102. #ifndef MNG_SUPPORT_IJG6B
  103. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  104. #define MNG_SUPPORT_IJG6B
  105. #endif
  106. #endif
  107.  
  108. #if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12)
  109. #define MNG_SUPPORT_JPEG8
  110. /* #define MNG_SUPPORT_JPEG12 */
  111. #endif
  112.  
  113. /* The following is required to export the IJG routines from the DLL in
  114.    the Windows-standard calling convention;
  115.    currently this only works for Borland C++ !!! */
  116.  
  117. #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  118. #if defined(MNG_SUPPORT_IJG6B) && defined(__BORLANDC__)
  119. #define MNG_DEFINE_JPEG_STDCALL
  120. #endif
  121. #endif
  122. #endif
  123.  
  124. /* ************************************************************************** */
  125.  
  126. /* enable required high-level functions */
  127. /* use this to select the high-level functions you require */
  128. /* if you only need to display a MNG, disable write support! */
  129. /* if you only need to examine a MNG, disable write & display support! */
  130. /* if you only need to copy a MNG, disable display support! */
  131. /* if you only need to create a MNG, disable read & display support! */
  132. /* NOTE that turning all options off will be very unuseful! */
  133.  
  134. #if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY)
  135. #define MNG_SUPPORT_READ
  136. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  137. #define MNG_SUPPORT_WRITE
  138. #endif
  139. #define MNG_SUPPORT_DISPLAY
  140. #endif
  141.  
  142. /* ************************************************************************** */
  143.  
  144. /* enable chunk access functions */
  145. /* use this to select whether you need access to the individual chunks */
  146. /* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*/
  147. /* required if you need to create & write a new MNG! */
  148.  
  149. #ifndef MNG_ACCESS_CHUNKS
  150. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  151. #define MNG_ACCESS_CHUNKS
  152. #endif
  153. #endif
  154.  
  155. /* ************************************************************************** */
  156.  
  157. /* enable exactly one(1) of the color-management functionality selectors */
  158. /* use this to select the level of automatic color support */
  159. /* MNG_FULL_CMS requires the lcms (little cms) external package ! */
  160. /* if you want your own app (or the OS) to handle color-management
  161.    select MNG_APP_CMS */
  162.  
  163. #define MNG_GAMMA_ONLY
  164. /* #define MNG_FULL_CMS */
  165. /* #define MNG_APP_CMS */
  166.  
  167. /* ************************************************************************** */
  168.  
  169. /* enable automatic dithering */
  170. /* use this if you need dithering support to convert high-resolution
  171.    images to a low-resolution output-device */
  172. /* NOTE that this is not supported yet */
  173.  
  174. /* #define MNG_AUTO_DITHER */
  175.  
  176. /* ************************************************************************** */
  177.  
  178. /* enable whether chunks should be stored for reference later */
  179. /* use this if you need to examine the chunks of a MNG you have read,
  180.    or (re-)write a MNG you have read */
  181. /* turn this off if you want to reduce memory-consumption */
  182.  
  183. #ifndef MNG_STORE_CHUNKS
  184. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  185. #define MNG_STORE_CHUNKS
  186. #endif
  187. #endif
  188.  
  189. /* ************************************************************************** */
  190.  
  191. /* enable internal memory management (if your compiler supports it) */
  192. /* use this if your compiler supports the 'standard' memory functions
  193.    (calloc & free), and you want the library to use these functions and not
  194.    bother your app with memory-callbacks */
  195.  
  196. /* #define MNG_INTERNAL_MEMMNGMT */
  197.  
  198. /* ************************************************************************** */
  199.  
  200. /* enable internal tracing-functionality (manual debugging purposes) */
  201. /* use this if you have trouble location bugs or problems */
  202. /* NOTE that you'll need to specify the trace callback function! */
  203.  
  204. /* #define MNG_SUPPORT_TRACE */
  205.  
  206. /* ************************************************************************** */
  207.  
  208. /* enable extended error- and trace-telltaling */
  209. /* use this if you need explanatory messages with errors and/or tracing */
  210.  
  211. #if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE)
  212. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  213. #define MNG_ERROR_TELLTALE
  214. #define MNG_TRACE_TELLTALE
  215. #endif
  216. #endif
  217.  
  218. /* ************************************************************************** */
  219.  
  220. /* enable BIG/LITTLE endian optimizations */
  221. /* enable BIG if you're on an architecture that supports big-endian reads
  222.    and writes that aren't word-aligned */
  223. /* according to reliable sources this only works for PowerPC (bigendian mode)
  224.    and 680x0 */
  225. /* enable LITTLE if you're on an architecture that supports little-endian */
  226. /* when in doubt leave both off !!! */
  227.  
  228. /* #define MNG_BIGENDIAN_SUPPORTED */
  229. /* #define MNG_LITTLEENDIAN_SUPPORTED */
  230.  
  231. /* ************************************************************************** */
  232. /* enable 'version' functions */
  233. #if !defined(MNG_VERSION_QUERY_SUPPORT) && \
  234.     !defined(MNG_NO_VERSION_QUERY_SUPPORT)
  235. #define MNG_VERSION_QUERY_SUPPORT
  236. #endif
  237.  
  238. /* enable 'supports' function */
  239. /* use this if you need to query the availability of functions at runtime;
  240.    useful for apps that dynamically load the library and that need specific
  241.    functions */
  242.  
  243. #if !defined(MNG_NO_SUPPORT_FUNCQUERY) && !defined(MNG_SUPPORT_FUNCQUERY)
  244. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || \
  245.     defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  246. #define MNG_SUPPORT_FUNCQUERY
  247. #endif
  248. #endif
  249.  
  250. /* ************************************************************************** */
  251.  
  252. /* enable dynamic MNG features */
  253. /* use this if you would like to have dynamic support for specifically
  254.    designed MNGs; eg. this is useful for 'rollover' effects such as common
  255.    on the world wide web */
  256.  
  257. #ifndef MNG_SUPPORT_DYNAMICMNG
  258. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  259. #define MNG_SUPPORT_DYNAMICMNG
  260. #endif
  261. #endif
  262. #ifndef MNG_SUPPORT_DYNAMICMNG
  263. #ifndef MNG_SKIPCHUNK_evNT
  264. #define MNG_SKIPCHUNK_evNT
  265. #endif
  266. #endif
  267.  
  268. #ifdef MNG_INCLUDE_JNG
  269. #ifndef MNG_NO_ACCESS_JPEG
  270. #ifndef MNG_ACCESS_JPEG
  271. #define MNG_ACCESS_JPEG
  272. #endif
  273. #endif
  274. #endif
  275.  
  276. #ifdef MNG_INCLUDE_ZLIB
  277. #ifndef MNG_NO_ACCESS_ZLIB
  278. #ifndef MNG_ACCESS_ZLIB
  279. #define MNG_ACCESS_ZLIB
  280. #endif
  281. #endif
  282. #endif
  283.  
  284. /* ************************************************************************** */
  285. /* *                                                                        * */
  286. /* *  End of user-selectable compile-time options                           * */
  287. /* *                                                                        * */
  288. /* ************************************************************************** */
  289.  
  290. #endif /* _libmng_conf_h_ */
  291.  
  292. /* ************************************************************************** */
  293. /* * end of file                                                            * */
  294. /* ************************************************************************** */
  295.  
  296.